home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / packer / unsit1.5c.amiga / src / unstuffit.h < prev    next >
Text File  |  1995-03-09  |  2KB  |  71 lines

  1. /* unsit.h: contains declarations for StuffIT (SIT) headers */
  2.  
  3. typedef long OSType;
  4.  
  5. typedef struct sitHdr {         /* 22 bytes */
  6.      OSType         signature;  /* = 'SIT!' -- for verification */
  7.      unsigned short numFiles;   /* number of files in archive */
  8.      unsigned long  arcLength;  /* length of entire archive incl.
  9.                                     hdr. -- for verification */
  10.      OSType         signature2; /* = 'rLau' -- for verification */
  11.      unsigned char  version;    /* version number */
  12.      char           reserved[7];
  13. };
  14.  
  15. typedef struct fileHdr { /* 112 bytes */
  16.      unsigned char  compRMethod; /* rsrc fork compression method */
  17.      unsigned char  compDMethod; /* data fork compression method */
  18.      unsigned char  fName[64];   /* a STR63 */
  19.      OSType         fType;       /* file type */
  20.      OSType         fCreator;    /* er... */
  21.      short          FndrFlags;   /* copy of Finder flags.  For our
  22.                                     purposes, we can clear:
  23.                                     busy, onDesk */
  24.      unsigned long  creationDate;
  25.      unsigned long  modDate;     /* !restored-compat w/backup prgms */
  26.      unsigned long  rsrcLength;  /* decompressed lengths */
  27.      unsigned long  dataLength;
  28.      unsigned long  compRLength; /* compressed lengths */
  29.      unsigned long  compDLength;
  30.      unsigned short rsrcCRC;     /* crc of rsrc fork */
  31.      unsigned short dataCRC;     /* crc of data fork */
  32.      char           reserved[6];
  33.      unsigned short hdrCRC;      /* crc of file header */
  34. };
  35.  
  36.  
  37. /* file format is:
  38.      sitArchiveHdr
  39.           file1Hdr
  40.                file1RsrcFork
  41.                file1DataFork
  42.           file2Hdr
  43.                file2RsrcFork
  44.                file2DataFork
  45.           .
  46.           .
  47.           .
  48.           fileNHdr
  49.                fileNRsrcFork
  50.                fileNDataFork
  51. */
  52.  
  53.  
  54. /* compression methods */
  55. #define noComp  0 /* just read each byte and write it to archive */
  56. #define rleComp 1 /* RLE compression */
  57. #define lzwComp 2 /* LZW compression */
  58. #define hufComp 3 /* Huffman compression */
  59.  
  60. /* proprietary compression methods...Deluxe Stuffit */
  61. #define deluxe0 4 /* unsupported/unknown */
  62. #define deluxe1 5 /* unsupported/unknown */
  63.  
  64.  
  65. #define encrypted   16 /* bit set if encrypted. ex: encrypted+lpzComp */
  66.  
  67. #define startFolder 32 /* marks start of a new folder */
  68. #define endFolder   33 /* marks end of the last folder "started" */
  69.  
  70. /* all other numbers are reserved */
  71.